/*
	Copyright 2010-2014 David "Alemarius Nexus" Lerch

	This file is part of libgta.

	libgta is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	libgta is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with libgta.  If not, see <http://www.gnu.org/licenses/>.

	Additional permissions are granted, which are listed in the file
	GPLADDITIONS.
 */


#ifndef STATICTEXTURESOURCE_H_
#define STATICTEXTURESOURCE_H_

#include "TextureSource.h"
#include <nxcommon/CString.h>
#include <gtaformats/txd/TXDArchive.h>
#include <map>
#include <memory>

using std::map;
using std::shared_ptr;


class StaticTextureSource : public TextureSource {
private:
	typedef map<CString, shared_ptr<Texture> > TexMap;

public:
	StaticTextureSource(TXDArchive* txd);
	StaticTextureSource(const StaticTextureSource& other);
	virtual Texture* getTexture(const CString& texName, bool lock = false);
	virtual TextureSource* clone() const { return new StaticTextureSource(*this); }

private:
	TexMap texes;
};

#endif /* STATICTEXTURESOURCE_H_ */
